Searching has become such an important feature of applications and operating systems for computer users. Even more so, it has turned into a highly profitable sector within the computing marketplace. On the one hand, advertisers are buying keywords and/or paying a premium for a desirable listing position when certain search terms are entered. On the other hand, consumers are primarily focused on the quality of the search and often select the search application or engine based on the engine's past performance or reputation.
Most commonly, users initiate text searches to look for specific content on the Internet, on their network, or on their local PC. A search request can appear in a variety of formats. The user can use keywords, a phrase, or any combination of words depending on the content he/she is seeking and the location of the search. Search results are returned according to some correlation between the terms entered by the user and the terms associated with a web page, for example. When several web pages exist that relate to the same or similar terms, there must be some technique in place to order or prioritize the pages for the user to give the user an idea of which pages are better or perhaps more relevant to the user's search.
Conventional ranking systems exist to perform this ordering based on algorithms. One in particular typically ranks a web page according to a function of how many other pages point to it. However, this system is primarily focused on web pages and requires knowledge of the link structure of the web. Furthermore, most conventional ranking systems tend to be limited to text pages. Thus, there is much opportunity for improving search capabilities.